<?php
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ModuloBitacoras
 *
 * @author EArzuza
 * @export Modules
 * export-metadata RequiredRoles:ROLE_PRACTICES_COORDINATOR:ROLE_STUDENT
 */    

Loader::using("models::entities::Estudiantes");
Loader::using("models::entities::Actividades");
Loader::using("models::entities::Practicantes");
Loader::using("models::entities::Bitacoras");


class ModuloBitacoras extends Module {
    
    public function index() {
        
        $Practicante=$this->model->practitioners->GetByEstudiante($this->currentUser->getName());
        
        if($Practicante->getIdSolicitud() != 0){
            $Solicitud = $this->model->applications->GetById($Practicante->getIdSolicitud());

            $FechaActual = time();
            $inicioPracticas = $Solicitud->getFechaIniciacion();
            $inicioPracticas = MicrosoftDateFormatter::fromJSON($inicioPracticas, "U");
            $FechaActual= MicrosoftDateFormatter::fromJSON($FechaActual, "U");
            $empresa= $Solicitud->getEmpresa()->getNombre();

            $Semana=$this->CalculoSemanas($Solicitud->getFechaIniciacion(), $FechaActual);
            $this->assign("estudiante", $Practicante);
            $this->assign("semana", $Semana);
            $this->assign("empresa", $empresa);
            $this->assign("action", $this->route->action("Guardar"));

            $this->display("index");
        }else{
            
            $this->addMessage(new Message("A&uacute;n no tiene solicitud de practicas registrada", "", Message::ERROR));
        
            $this->display("sinSolicitud");
            
        }
    }

    public function CalculoSemanas($inicioPracticas, $FechaActual) {
        
        $tiempo = $inicioPracticas - $FechaActual;
        $semanas= ($tiempo / (60 * 60 * 24)/ 7);
        
        return ceil($semanas);
        
    }
    
    public function Guardar(){
     
        $nuevasActividades = array();
        $actividades=$this->request->post("actividades");
        
        $Practicante=$this->model->practitioners->GetByEstudiante($this->currentUser->getName());
     
        foreach ($actividades as $actividad){
         
            $nueva=new Actividades();
            $nueva->setActividad($actividad["actividad"]);
            $nueva->setObjetivo($actividad["objetivo"]);
            $porcentaje = $actividad["porcentLogro"];
            $porcentaje = trim($porcentaje, '%');
            $nueva->setPorcentaje($porcentaje);
            
            array_push($nuevasActividades, $nueva);
         
        }
        
        $bitacora= new Bitacoras();
        
        $bitacora->setActividades($nuevasActividades);
        $bitacora->setMes($this->request->post("mes"));
        $bitacora->setSemana($this->request->post("semana"));
        $bitacora->setCompetencias($this->request->post("compentencias"));
        $bitacora->setIdPracticante($Practicante->getIdPracticante());
        $bitacora->setFechaReporte(MicrosoftDateFormatter::toJSON(date("d/m/Y")));
        
        $this->model->logbooks->create($bitacora);
        
        
        
        $this->addMessage(new Message("La Bitacora se guardo correctamente!!", "", Message::SUCCESS));
        $this->display();
    }
    
}

?>